package com.gsbelarus.gedemin.income.activity;

import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;

import com.gsbelarus.gedemin.income.R;
import com.gsbelarus.gedemin.income.sync.SyncService;
import com.gsbelarus.gedemin.lib.ui.activity.SyncActivityModel;

abstract public class SyncActivity extends SyncActivityModel {

    /**
     * @return id View для отрисовки в активити
     */
    abstract public int getViewId();

    @Override
    abstract public void onFinishUpdateDB();

    /**
     * вызывается в методе onCreate(Bundle)
     *
     * @param arguments bundle с агрументами
     */
    public void onCreateActivity(Bundle arguments) {
        super.onCreateActivity(arguments);
    }

    /**
     * setText для заголовка вызыватся в onCreate
     *
     * @return текст заголовка activity
     */
    public String getTitleString() {
        return null;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        if (mDrawerToggle != null && mDrawerToggle.onOptionsItemSelected(item))
            return true;
        switch (item.getItemId()) {
            case R.id.action_settings:
                Intent intent = new Intent(this, Settings.class);
                startActivity(intent);
                return true;
            case R.id.action_sync:
                startService(new Intent(this, SyncService.class));
                return true;
            case android.R.id.home:
                finish();
                return true;
        }
        return super.onOptionsItemSelected(item);
    }

    /**
     * создание меню (пункты Обновить, Настройки)
     */
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return super.onCreateOptionsMenu(menu);
    }
}
